﻿namespace DotNetStar.OpenSDK.WeChat.Open
{
    using OAuth;
    /// <summary>
    /// 表示使用微信公众平台的网页生成用户登录授权连接的请求。
    /// </summary>
    /// <seealso cref="AuthorizeCodeApiRequest" />
    public class WeChatAuthorizeCodeApiRequest : AuthorizeCodeApiRequest
    {
        /// <summary>
        /// 初始化 <see cref="WeChatAuthorizeCodeApiRequest"/> 类的新实例。
        /// </summary>
        /// <param name="config">OAuth 配置。</param>
        public WeChatAuthorizeCodeApiRequest(OAuthConfig config) : base("https://open.weixin.qq.com/connect/oauth2/authorize", config)
        {
        }

        /// <summary>
        /// 应用授权作用域，snsapi_base （不弹出授权页面，直接跳转，只能获取用户openid）
        /// ，snsapi_userinfo （弹出授权页面，可通过openid拿到昵称、性别、所在地。并且，即使在未关注的情况下，只要用户授权，也能获取其信息）
        /// </summary>
        public string Scope { get; set; } = "snsapi_base";

        /// <summary>
        /// 获取公众号的唯一标识。
        /// </summary>
        public string AppId => Config.ClientId;
        /// <summary>
        /// 获取授权后重定向的回调链接地址，请使用urlEncode对链接进行处理。
        /// </summary>
        public string Redirect_Uri => Config.RedirectUri;

        /// <summary>
        /// 获取返回类型，固定值 code。
        /// </summary>
        public string Response_Type => "code";
    }
}
